﻿
''' <summary>
''' JOS客户端
''' </summary>
Public Interface IJosClient

    ''' <summary>
    ''' 执行公开API请求。
    ''' </summary>
    ''' <typeparam name="T">领域对象</typeparam>
    ''' <param name="request">具体的TOP API请求</param>
    ''' <returns>领域对象</returns>
    Function Execute(Of T As JosResponse)(ByVal request As IJosRequest(Of T)) As T

    ''' <summary>
    ''' 执行隐私API请求。
    ''' </summary>
    ''' <typeparam name="T">领域对象</typeparam>
    ''' <param name="request">具体的TOP API请求</param>
    ''' <param name="session">用户会话码</param>
    ''' <returns>领域对象</returns>
    Function Execute(Of T As JosResponse)(ByVal request As IJosRequest(Of T), ByVal session As String) As T

    ''' <summary>
    ''' 执行隐私API请求。
    ''' </summary>
    ''' <typeparam name="T">领域对象</typeparam>
    ''' <param name="request">具体的TOP API请求</param>
    ''' <param name="session">用户会话码</param>
    ''' <param name="timestamp">请求时间戳</param>
    ''' <returns>领域对象</returns>
    Function Execute(Of T As JosResponse)(ByVal request As IJosRequest(Of T), ByVal session As String, ByVal timestamp As DateTime) As T

End Interface